package com.alipay.alps.flatv3.antlr4;

// Generated from Filter.g4 by ANTLR 4.5.3
import org.antlr.v4.runtime.Lexer;
import org.antlr.v4.runtime.CharStream;
import org.antlr.v4.runtime.Token;
import org.antlr.v4.runtime.TokenStream;
import org.antlr.v4.runtime.*;
import org.antlr.v4.runtime.atn.*;
import org.antlr.v4.runtime.dfa.DFA;
import org.antlr.v4.runtime.misc.*;

@SuppressWarnings({"all", "warnings", "unchecked", "unused", "cast"})
public class FilterLexer extends Lexer {
	static { RuntimeMetaData.checkVersion("4.5.3", RuntimeMetaData.VERSION); }

	protected static final DFA[] _decisionToDFA;
	protected static final PredictionContextCache _sharedContextCache =
		new PredictionContextCache();
	public static final int
		SCOL=1, OPEN_PAR=2, CLOSE_PAR=3, COMMA=4, ASSIGN=5, STAR=6, PLUS=7, MINUS=8, 
		DIV=9, MOD=10, LT=11, LT_EQ=12, GT=13, GT_EQ=14, EQ=15, NOT_EQ1=16, NOT_EQ2=17, 
		AND_=18, AS_=19, IN_=20, NO_=21, NOT_=22, OF_=23, ON_=24, OR_=25, IDENTIFIER=26, 
		NUMERIC_LITERAL=27, STRING_LITERAL=28, SPACES=29, UNEXPECTED_CHAR=30;
	public static String[] modeNames = {
		"DEFAULT_MODE"
	};

	public static final String[] ruleNames = {
		"SCOL", "OPEN_PAR", "CLOSE_PAR", "COMMA", "ASSIGN", "STAR", "PLUS", "MINUS", 
		"DIV", "MOD", "LT", "LT_EQ", "GT", "GT_EQ", "EQ", "NOT_EQ1", "NOT_EQ2", 
		"AND_", "AS_", "IN_", "NO_", "NOT_", "OF_", "ON_", "OR_", "IDENTIFIER", 
		"NUMERIC_LITERAL", "STRING_LITERAL", "SPACES", "UNEXPECTED_CHAR", "HEX_DIGIT", 
		"DIGIT"
	};

	private static final String[] _LITERAL_NAMES = {
		null, "';'", "'('", "')'", "','", "'='", "'*'", "'+'", "'-'", "'/'", "'%'", 
		"'<'", "'<='", "'>'", "'>='", "'=='", "'!='", "'<>'", null, "'AS'", null, 
		"'NO'", null, "'OF'", "'ON'"
	};
	private static final String[] _SYMBOLIC_NAMES = {
		null, "SCOL", "OPEN_PAR", "CLOSE_PAR", "COMMA", "ASSIGN", "STAR", "PLUS", 
		"MINUS", "DIV", "MOD", "LT", "LT_EQ", "GT", "GT_EQ", "EQ", "NOT_EQ1", 
		"NOT_EQ2", "AND_", "AS_", "IN_", "NO_", "NOT_", "OF_", "ON_", "OR_", "IDENTIFIER", 
		"NUMERIC_LITERAL", "STRING_LITERAL", "SPACES", "UNEXPECTED_CHAR"
	};
	public static final Vocabulary VOCABULARY = new VocabularyImpl(_LITERAL_NAMES, _SYMBOLIC_NAMES);

	/**
	 * @deprecated Use {@link #VOCABULARY} instead.
	 */
	@Deprecated
	public static final String[] tokenNames;
	static {
		tokenNames = new String[_SYMBOLIC_NAMES.length];
		for (int i = 0; i < tokenNames.length; i++) {
			tokenNames[i] = VOCABULARY.getLiteralName(i);
			if (tokenNames[i] == null) {
				tokenNames[i] = VOCABULARY.getSymbolicName(i);
			}

			if (tokenNames[i] == null) {
				tokenNames[i] = "<INVALID>";
			}
		}
	}

	@Override
	@Deprecated
	public String[] getTokenNames() {
		return tokenNames;
	}

	@Override

	public Vocabulary getVocabulary() {
		return VOCABULARY;
	}


	public FilterLexer(CharStream input) {
		super(input);
		_interp = new LexerATNSimulator(this,_ATN,_decisionToDFA,_sharedContextCache);
	}

	@Override
	public String getGrammarFileName() { return "Filter.g4"; }

	@Override
	public String[] getRuleNames() { return ruleNames; }

	@Override
	public String getSerializedATN() { return _serializedATN; }

	@Override
	public String[] getModeNames() { return modeNames; }

	@Override
	public ATN getATN() { return _ATN; }

	public static final String _serializedATN =
		"\3\u0430\ud6d1\u8206\uad2d\u4417\uaef1\u8d80\uaadd\2 \u00f7\b\1\4\2\t"+
		"\2\4\3\t\3\4\4\t\4\4\5\t\5\4\6\t\6\4\7\t\7\4\b\t\b\4\t\t\t\4\n\t\n\4\13"+
		"\t\13\4\f\t\f\4\r\t\r\4\16\t\16\4\17\t\17\4\20\t\20\4\21\t\21\4\22\t\22"+
		"\4\23\t\23\4\24\t\24\4\25\t\25\4\26\t\26\4\27\t\27\4\30\t\30\4\31\t\31"+
		"\4\32\t\32\4\33\t\33\4\34\t\34\4\35\t\35\4\36\t\36\4\37\t\37\4 \t \4!"+
		"\t!\3\2\3\2\3\3\3\3\3\4\3\4\3\5\3\5\3\6\3\6\3\7\3\7\3\b\3\b\3\t\3\t\3"+
		"\n\3\n\3\13\3\13\3\f\3\f\3\r\3\r\3\r\3\16\3\16\3\17\3\17\3\17\3\20\3\20"+
		"\3\20\3\21\3\21\3\21\3\22\3\22\3\22\3\23\3\23\3\23\3\23\3\23\3\23\5\23"+
		"q\n\23\3\24\3\24\3\24\3\25\3\25\3\25\3\25\5\25z\n\25\3\26\3\26\3\26\3"+
		"\27\3\27\3\27\3\27\3\27\3\27\5\27\u0085\n\27\3\30\3\30\3\30\3\31\3\31"+
		"\3\31\3\32\3\32\3\32\3\32\5\32\u0091\n\32\3\33\3\33\3\33\3\33\7\33\u0097"+
		"\n\33\f\33\16\33\u009a\13\33\3\33\3\33\3\33\3\33\3\33\7\33\u00a1\n\33"+
		"\f\33\16\33\u00a4\13\33\3\33\3\33\3\33\7\33\u00a9\n\33\f\33\16\33\u00ac"+
		"\13\33\3\33\3\33\3\33\7\33\u00b1\n\33\f\33\16\33\u00b4\13\33\5\33\u00b6"+
		"\n\33\3\34\6\34\u00b9\n\34\r\34\16\34\u00ba\3\34\3\34\7\34\u00bf\n\34"+
		"\f\34\16\34\u00c2\13\34\5\34\u00c4\n\34\3\34\3\34\6\34\u00c8\n\34\r\34"+
		"\16\34\u00c9\5\34\u00cc\n\34\3\34\3\34\5\34\u00d0\n\34\3\34\6\34\u00d3"+
		"\n\34\r\34\16\34\u00d4\5\34\u00d7\n\34\3\34\3\34\3\34\3\34\6\34\u00dd"+
		"\n\34\r\34\16\34\u00de\5\34\u00e1\n\34\3\35\3\35\3\35\3\35\7\35\u00e7"+
		"\n\35\f\35\16\35\u00ea\13\35\3\35\3\35\3\36\3\36\3\36\3\36\3\37\3\37\3"+
		" \3 \3!\3!\2\2\"\3\3\5\4\7\5\t\6\13\7\r\b\17\t\21\n\23\13\25\f\27\r\31"+
		"\16\33\17\35\20\37\21!\22#\23%\24\'\25)\26+\27-\30/\31\61\32\63\33\65"+
		"\34\67\359\36;\37= ?\2A\2\3\2\f\3\2$$\3\2bb\3\2__\3\2C|\5\2\60\60\62;"+
		"C|\4\2--//\3\2))\5\2\13\r\17\17\"\"\4\2\62;CH\3\2\62;\u010d\2\3\3\2\2"+
		"\2\2\5\3\2\2\2\2\7\3\2\2\2\2\t\3\2\2\2\2\13\3\2\2\2\2\r\3\2\2\2\2\17\3"+
		"\2\2\2\2\21\3\2\2\2\2\23\3\2\2\2\2\25\3\2\2\2\2\27\3\2\2\2\2\31\3\2\2"+
		"\2\2\33\3\2\2\2\2\35\3\2\2\2\2\37\3\2\2\2\2!\3\2\2\2\2#\3\2\2\2\2%\3\2"+
		"\2\2\2\'\3\2\2\2\2)\3\2\2\2\2+\3\2\2\2\2-\3\2\2\2\2/\3\2\2\2\2\61\3\2"+
		"\2\2\2\63\3\2\2\2\2\65\3\2\2\2\2\67\3\2\2\2\29\3\2\2\2\2;\3\2\2\2\2=\3"+
		"\2\2\2\3C\3\2\2\2\5E\3\2\2\2\7G\3\2\2\2\tI\3\2\2\2\13K\3\2\2\2\rM\3\2"+
		"\2\2\17O\3\2\2\2\21Q\3\2\2\2\23S\3\2\2\2\25U\3\2\2\2\27W\3\2\2\2\31Y\3"+
		"\2\2\2\33\\\3\2\2\2\35^\3\2\2\2\37a\3\2\2\2!d\3\2\2\2#g\3\2\2\2%p\3\2"+
		"\2\2\'r\3\2\2\2)y\3\2\2\2+{\3\2\2\2-\u0084\3\2\2\2/\u0086\3\2\2\2\61\u0089"+
		"\3\2\2\2\63\u0090\3\2\2\2\65\u00b5\3\2\2\2\67\u00e0\3\2\2\29\u00e2\3\2"+
		"\2\2;\u00ed\3\2\2\2=\u00f1\3\2\2\2?\u00f3\3\2\2\2A\u00f5\3\2\2\2CD\7="+
		"\2\2D\4\3\2\2\2EF\7*\2\2F\6\3\2\2\2GH\7+\2\2H\b\3\2\2\2IJ\7.\2\2J\n\3"+
		"\2\2\2KL\7?\2\2L\f\3\2\2\2MN\7,\2\2N\16\3\2\2\2OP\7-\2\2P\20\3\2\2\2Q"+
		"R\7/\2\2R\22\3\2\2\2ST\7\61\2\2T\24\3\2\2\2UV\7\'\2\2V\26\3\2\2\2WX\7"+
		">\2\2X\30\3\2\2\2YZ\7>\2\2Z[\7?\2\2[\32\3\2\2\2\\]\7@\2\2]\34\3\2\2\2"+
		"^_\7@\2\2_`\7?\2\2`\36\3\2\2\2ab\7?\2\2bc\7?\2\2c \3\2\2\2de\7#\2\2ef"+
		"\7?\2\2f\"\3\2\2\2gh\7>\2\2hi\7@\2\2i$\3\2\2\2jk\7C\2\2kl\7P\2\2lq\7F"+
		"\2\2mn\7c\2\2no\7p\2\2oq\7f\2\2pj\3\2\2\2pm\3\2\2\2q&\3\2\2\2rs\7C\2\2"+
		"st\7U\2\2t(\3\2\2\2uv\7K\2\2vz\7P\2\2wx\7k\2\2xz\7p\2\2yu\3\2\2\2yw\3"+
		"\2\2\2z*\3\2\2\2{|\7P\2\2|}\7Q\2\2},\3\2\2\2~\177\7P\2\2\177\u0080\7Q"+
		"\2\2\u0080\u0085\7V\2\2\u0081\u0082\7p\2\2\u0082\u0083\7q\2\2\u0083\u0085"+
		"\7v\2\2\u0084~\3\2\2\2\u0084\u0081\3\2\2\2\u0085.\3\2\2\2\u0086\u0087"+
		"\7Q\2\2\u0087\u0088\7H\2\2\u0088\60\3\2\2\2\u0089\u008a\7Q\2\2\u008a\u008b"+
		"\7P\2\2\u008b\62\3\2\2\2\u008c\u008d\7Q\2\2\u008d\u0091\7T\2\2\u008e\u008f"+
		"\7q\2\2\u008f\u0091\7t\2\2\u0090\u008c\3\2\2\2\u0090\u008e\3\2\2\2\u0091"+
		"\64\3\2\2\2\u0092\u0098\7$\2\2\u0093\u0097\n\2\2\2\u0094\u0095\7$\2\2"+
		"\u0095\u0097\7$\2\2\u0096\u0093\3\2\2\2\u0096\u0094\3\2\2\2\u0097\u009a"+
		"\3\2\2\2\u0098\u0096\3\2\2\2\u0098\u0099\3\2\2\2\u0099\u009b\3\2\2\2\u009a"+
		"\u0098\3\2\2\2\u009b\u00b6\7$\2\2\u009c\u00a2\7b\2\2\u009d\u00a1\n\3\2"+
		"\2\u009e\u009f\7b\2\2\u009f\u00a1\7b\2\2\u00a0\u009d\3\2\2\2\u00a0\u009e"+
		"\3\2\2\2\u00a1\u00a4\3\2\2\2\u00a2\u00a0\3\2\2\2\u00a2\u00a3\3\2\2\2\u00a3"+
		"\u00a5\3\2\2\2\u00a4\u00a2\3\2\2\2\u00a5\u00b6\7b\2\2\u00a6\u00aa\7]\2"+
		"\2\u00a7\u00a9\n\4\2\2\u00a8\u00a7\3\2\2\2\u00a9\u00ac\3\2\2\2\u00aa\u00a8"+
		"\3\2\2\2\u00aa\u00ab\3\2\2\2\u00ab\u00ad\3\2\2\2\u00ac\u00aa\3\2\2\2\u00ad"+
		"\u00b6\7_\2\2\u00ae\u00b2\t\5\2\2\u00af\u00b1\t\6\2\2\u00b0\u00af\3\2"+
		"\2\2\u00b1\u00b4\3\2\2\2\u00b2\u00b0\3\2\2\2\u00b2\u00b3\3\2\2\2\u00b3"+
		"\u00b6\3\2\2\2\u00b4\u00b2\3\2\2\2\u00b5\u0092\3\2\2\2\u00b5\u009c\3\2"+
		"\2\2\u00b5\u00a6\3\2\2\2\u00b5\u00ae\3\2\2\2\u00b6\66\3\2\2\2\u00b7\u00b9"+
		"\5A!\2\u00b8\u00b7\3\2\2\2\u00b9\u00ba\3\2\2\2\u00ba\u00b8\3\2\2\2\u00ba"+
		"\u00bb\3\2\2\2\u00bb\u00c3\3\2\2\2\u00bc\u00c0\7\60\2\2\u00bd\u00bf\5"+
		"A!\2\u00be\u00bd\3\2\2\2\u00bf\u00c2\3\2\2\2\u00c0\u00be\3\2\2\2\u00c0"+
		"\u00c1\3\2\2\2\u00c1\u00c4\3\2\2\2\u00c2\u00c0\3\2\2\2\u00c3\u00bc\3\2"+
		"\2\2\u00c3\u00c4\3\2\2\2\u00c4\u00cc\3\2\2\2\u00c5\u00c7\7\60\2\2\u00c6"+
		"\u00c8\5A!\2\u00c7\u00c6\3\2\2\2\u00c8\u00c9\3\2\2\2\u00c9\u00c7\3\2\2"+
		"\2\u00c9\u00ca\3\2\2\2\u00ca\u00cc\3\2\2\2\u00cb\u00b8\3\2\2\2\u00cb\u00c5"+
		"\3\2\2\2\u00cc\u00d6\3\2\2\2\u00cd\u00cf\7G\2\2\u00ce\u00d0\t\7\2\2\u00cf"+
		"\u00ce\3\2\2\2\u00cf\u00d0\3\2\2\2\u00d0\u00d2\3\2\2\2\u00d1\u00d3\5A"+
		"!\2\u00d2\u00d1\3\2\2\2\u00d3\u00d4\3\2\2\2\u00d4\u00d2\3\2\2\2\u00d4"+
		"\u00d5\3\2\2\2\u00d5\u00d7\3\2\2\2\u00d6\u00cd\3\2\2\2\u00d6\u00d7\3\2"+
		"\2\2\u00d7\u00e1\3\2\2\2\u00d8\u00d9\7\62\2\2\u00d9\u00da\7z\2\2\u00da"+
		"\u00dc\3\2\2\2\u00db\u00dd\5? \2\u00dc\u00db\3\2\2\2\u00dd\u00de\3\2\2"+
		"\2\u00de\u00dc\3\2\2\2\u00de\u00df\3\2\2\2\u00df\u00e1\3\2\2\2\u00e0\u00cb"+
		"\3\2\2\2\u00e0\u00d8\3\2\2\2\u00e18\3\2\2\2\u00e2\u00e8\7)\2\2\u00e3\u00e7"+
		"\n\b\2\2\u00e4\u00e5\7)\2\2\u00e5\u00e7\7)\2\2\u00e6\u00e3\3\2\2\2\u00e6"+
		"\u00e4\3\2\2\2\u00e7\u00ea\3\2\2\2\u00e8\u00e6\3\2\2\2\u00e8\u00e9\3\2"+
		"\2\2\u00e9\u00eb\3\2\2\2\u00ea\u00e8\3\2\2\2\u00eb\u00ec\7)\2\2\u00ec"+
		":\3\2\2\2\u00ed\u00ee\t\t\2\2\u00ee\u00ef\3\2\2\2\u00ef\u00f0\b\36\2\2"+
		"\u00f0<\3\2\2\2\u00f1\u00f2\13\2\2\2\u00f2>\3\2\2\2\u00f3\u00f4\t\n\2"+
		"\2\u00f4@\3\2\2\2\u00f5\u00f6\t\13\2\2\u00f6B\3\2\2\2\32\2py\u0084\u0090"+
		"\u0096\u0098\u00a0\u00a2\u00aa\u00b2\u00b5\u00ba\u00c0\u00c3\u00c9\u00cb"+
		"\u00cf\u00d4\u00d6\u00de\u00e0\u00e6\u00e8\3\2\3\2";
	public static final ATN _ATN =
		new ATNDeserializer().deserialize(_serializedATN.toCharArray());
	static {
		_decisionToDFA = new DFA[_ATN.getNumberOfDecisions()];
		for (int i = 0; i < _ATN.getNumberOfDecisions(); i++) {
			_decisionToDFA[i] = new DFA(_ATN.getDecisionState(i), i);
		}
	}
}